package com.googlecode.lightest.core

interface ITestEnvironment {
    
    void setId(String id)
    
    /**
     * Returns a unique identifier for the environment
     */
    String getId()
    
    /**
     * Sets an environment value local to the currently running test. These
     * can provide a context to any object in the test that uses this
     * environment. Local values may be cleared as each test runs.
     * 
     * @param name   the name of the local value
     * @param value  the value of the local value
     */
    void setLocal(String name, value)
    
    /**
     * Returns a local environment value.
     * 
     * @param name  the name of the local value
     */
    def getLocal(String name)
    
    /**
     * Removes all local environment values that have been added by setLocal().
     */
    void clearLocal()
    
    /**
     * Returns a mapping of environment setting names to String representations
     * of their values.
     */
    Map<String, String> getPrintableSettings()
}
